/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.manager.editar;

import br.com.deployment.entidade.fermojupi.AtoItem;
import br.com.deployment.entidade.fermojupi.Emolumento;
import br.com.deployment.entidade.fermojupi.EmolumentoItem;
import br.com.deployment.manager.visualizar.ManagerVisualizarEmolumento;
import br.com.deployment.servico.AtoItemServico;
import br.com.deployment.servico.EmolumentoItemServico;
import br.com.deployment.servico.EmolumentoServico;
import br.com.deployment.utilitario.Msg;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author luciano
 */
@ManagedBean
@SessionScoped
public class ManagerEditarEmolumento implements Serializable{
    
    @EJB
    EmolumentoServico emolumentoServico;
    @EJB
    EmolumentoItemServico emolumentoItemServico;
    @EJB
    AtoItemServico atoItemServico;
    
    Emolumento emolumento;
    EmolumentoItem emolumentoItem;
    List<EmolumentoItem> emolumentoItens;

    public ManagerEditarEmolumento() {
    }
    
     public void editar(Emolumento emolumento){
        this.emolumento = emolumento;
        this.emolumentoItem = new EmolumentoItem();
        emolumentoItens = emolumentoItemServico.findEmolumentoItem(this.emolumento); 
    }
     
     public List<EmolumentoItem> itens(){
         List<EmolumentoItem> result = new ArrayList<EmolumentoItem>();
         for (EmolumentoItem ei : this.emolumentoItens) {
             if(ei.isStatus()){
                 result.add(ei);
             }
         }
         return result;
     }
    
      public void atualizar() {
          List<EmolumentoItem> itens = new ArrayList<EmolumentoItem>();
          for (EmolumentoItem emolumentoItem1 : emolumentoItens) {
              emolumentoItem1.setEmol(emolumento);
              itens.add(emolumentoItem1);
          }
          
          emolumento.setEmolItem( itens );
          emolumentoServico.atualizar(emolumento);
          Msg.messagemInfo("Emolumento Alterado com Sucesso !");
    }
 
    public void addList(){
        emolumentoItem.setAtoItem(atoItemServico.find(emolumentoItem.getAtoItem().getId()));
        emolumentoItens.add(emolumentoItem);
        emolumentoItem = new EmolumentoItem();
    }
    
    public void remove(EmolumentoItem ds) {
        emolumentoItens.get(emolumentoItens.indexOf(ds)).setStatus(false);
    }
    
     public void editarList(EmolumentoItem ds) {
        emolumentoItem = ds;
        emolumentoItens.remove(ds);
    }
     
     public void limparItem(){
         this.emolumentoItem = new EmolumentoItem();
     }
     
    public void redirect(String string, Emolumento emolumento) {
        try {
            FacesContext context = FacesContext.getCurrentInstance();
            this.editar(emolumento);
            context.getExternalContext().redirect(string);
        } catch (IOException ex) {
            Logger.getLogger(ManagerVisualizarEmolumento.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void handleSelect(SelectEvent event) {
        AtoItem a = (AtoItem) event.getObject();
        emolumentoItem.setAtoItem(atoItemServico.find(a.getId()));
    }

    public Emolumento getEmolumento() {
        return emolumento;
    }

    public void setEmolumento(Emolumento emolumento) {
        this.emolumento = emolumento;
    }

    public List<EmolumentoItem> getEmolumentoItens() {
        return emolumentoItens;
    }

    public void setEmolumentoItens(List<EmolumentoItem> emolumentoItens) {
        this.emolumentoItens = emolumentoItens;
    }

    public EmolumentoItem getEmolumentoItem() {
        return emolumentoItem;
    }

    public void setEmolumentoItem(EmolumentoItem emolumentoItem) {
        this.emolumentoItem = emolumentoItem;
    }
    
    
    
    
    
}
